package com.witmore.neutron.ai.web.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jk.common.response.ResponseResult;
import com.witmore.neutron.ai.web.apiv2.controller.vo.UserKeyCreateParam;
import com.witmore.neutron.ai.web.apiv2.controller.vo.UserKeyCreateResponse;
import com.witmore.neutron.ai.web.apiv2.controller.vo.UserKeyListResponse;
import com.witmore.neutron.ai.web.apiv2.controller.vo.UserKeyQueryParam;
import com.witmore.neutron.ai.web.apiv2.controller.vo.UserKeyUpdateParam;

/**
 * 用户API密钥服务接口
 * Author: 豆子高
 * Date: 2025/09/04
 */
public interface UserKeyService {

    /**
     * 创建用户API密钥
     * @param createParam 创建参数
     * @return 响应结果，包含生成的API密钥
     */
    ResponseResult<UserKeyCreateResponse> createUserKey(UserKeyCreateParam createParam);

    /**
     * 删除用户API密钥
     * @param id 密钥ID
     * @return 响应结果
     */
    ResponseResult<Void> deleteUserKey(Integer id);

    /**
     * 分页查询用户API密钥列表
     * @param queryParam 查询参数
     * @return 分页结果，API密钥已脱敏处理
     */
    Page<UserKeyListResponse> getUserKeyPage(UserKeyQueryParam queryParam);

    /**
     * 更新用户API密钥
     * @param updateParam 更新参数
     * @return 响应结果
     */
    ResponseResult<Void> updateUserKey(UserKeyUpdateParam updateParam);
}
